﻿/**
* JS con la lógica de las reservas
*/ 
var centroCargado = false;

$(document).ready(function () {

    if (!centroCargado) {
        var dropdownElement = $('#selectCentro');
        var url = '/CentroDeportivo/getCentros';
        var data = {};
        var vaciar = true;
        fillDropDownList(dropdownElement, url, data, vaciar);
        centroCargado = true;
    }

    $("#selectCentro").change(function () {
        var centroDeportivoElegido = -1;
        $("#selectCentro option:selected").each(function () {
            centroDeportivoElegido = $(this).val();
            var dropdownElement = $('#selectDeporte');
            clearDropDownList(dropdownElement);

            if (centroDeportivoElegido > -1) {
                var url = '/Deporte/getDeportesCentro';
                var data = { idCentroDeportivo: centroDeportivoElegido };
                var vaciar = true;
                fillDropDownList(dropdownElement, url, data, vaciar);
                dropdownElement.focus();
            }
        });
    });

    $("#selectDeporte").change(function () {
        var centroDeportivoElegido = -1;
        var deporteElegido = -1;
        $("#selectCentro option:selected").each(function () {
            centroDeportivoElegido = $(this).val();
        });
        $("#selectDeporte option:selected").each(function () {
            deporteElegido = $(this).val();
            var dropdownElement = $('#selectPista');
            clearDropDownList(dropdownElement);

            if (centroDeportivoElegido > -1 && deporteElegido > -1) {
                var url = '/Pista/getPistaDeporte';
                var data = { idCentroDeportivo: centroDeportivoElegido, idDeporte: deporteElegido };
                var vaciar = true;
                fillDropDownList(dropdownElement, url, data, vaciar);
                dropdownElement.focus();
            }
        });
    });
});


/**
* Clic en el boton de 'Ver Pista'
*/
function consultaPista() {
    drawCalendar();
}
function closeReserva() {
    $('#reservaModal').modal('hide');
}
function confirmarReserva() {
    var datos = {
            importe: $('#importe').val(),
            pistaSel : $('#pistaSel').val(),
            centroSel: $('#centroSel').val(),
            deporteSel : $('#deporteSel').val(),
            horaInicio : $('#horaInicio').val(),
            horaFin: $('#horaFin').val(),
            luzSel : $('#luzSel').val()
        };
        $.ajax({
            url: '/Reservas/postReservasPista',
            type: 'POST',
            data: datos,
            dataType: "json",
            async: false,
            success: function (result) {
                if (result.operation == "OK") {                    
                    $.ajax({
                        url: '/Reservas/ConfirmarReserva',
                        type: 'GET',
                        data: datos,
                        dataType: "html",
                        async: false,
                        success: function (result) {
                            $("#reservaModal").html(result);
                            var formu = $('form#formReservar');
                            formu.submit();
                            setTimeout("comprobarReserva();", 30000);
                        }
                    });
                }
                else {
                    ResultadoAccion(result);
                    closeReserva();
                }
            }
        });       
}
function comprobarReserva() {

    /*var dataPost = null;

    if ($('#formReservar').length) {
        dataPost = $('#formReservar').serialize();
    }

    console.log(dataPost);

    $.ajax({
        url: '/Reservas/ValidarReserva',
        type: 'POST',
        data: dataPost,
        dataType: "html",
        async: false,
        success: function (result) {
            alert(result);
            if (result != true)
                setTimeout('comprobar()', 20000);
        }
    });*/
    closeReserva();
    drawCalendar();
    crearAlertaBasica($('msg'), "Reserva creada correctamente.","SUCESFULLY");
}

function drawCalendar() {
    var centro = -1;
    var centrodes = "";
    $("#selectCentro option:selected").each(function () {
        centro = $(this).val();
        centrodes = $(this).html();
    });
    var deporte = -1;
    var deportedes = "";
    $("#selectDeporte option:selected").each(function () {
        deporte = $(this).val();
        deportedes = $(this).html();
    });
    var pista = -1;
    var pistades = "";
    $("#selectPista option:selected").each(function () {
        pista = $(this).val();
        pistades = $(this).html();
    });

    if (pista < 1 || deporte < 1 || centro < 1) {
        return;
    }

    $.ajax({
        url: '/Reservas/getReservasPista',
        type: 'GET',
        datatype: 'json',
        data: {
            selectCentro: centro,
            selectDeporte: deporte,
            selectPista: pista
        },
        success: function (res) {

            var json = jQuery.parseJSON(res);
            
            $('#calendar').Calendar({
                events: res,
                weekStart: 1,
                hourStart: json.horaApertura,
                hourEnd: json.horaCierre
            })
            .on('onEvent', function (event) {
                //alert(event.day.valueOf());
            })
            .on('onNext', function (event) {
                //alert("Next");
            })
            .on('onChangeCalendarDay', function (event) {
                //console.log(event);
            })
            .on('onHourSelected', function (event) {

                var d2 = new Date(event.date);
                d2.setHours(event.date.getHours() + 1);
                var datos = {
                    horaInicio: event.date.formatDDMMYYYY(),
                    horaFin: d2.formatDDMMYYYY(),
                    deporteReserva: deportedes,
                    pistaReserva: pistades,
                    centroReserva: centrodes,
                    deporteSel: deporte,
                    pistaSel: pista,
                    centroSel: centro
                };

                $.ajax({
                    url: '/Reservas/NuevaReserva',
                    type: 'GET',
                    data: datos,
                    dataType: "html",
                    async: false,
                    success: function (result) {
                        $("#reservaModal").html(result);
                        $('#reservaModal').modal('show');
                    }
                });
            });            
        }
    });
}

/**
* Extension de DATE para formatear
*/
Date.prototype.formatDDMMYYYY = function () {
    return this.getDate() +
            "/" + this.getMonth() +
            "/" + this.getFullYear() +
            " " + ((this.getHours() < 10) ? ("0" + this.getHours()) : this.getHours()) +
            ":" + ((this.getMinutes() < 10) ? ("0" + this.getMinutes()) : this.getMinutes());
}
